package com.macro.mall.portal.dao;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author mbg
 */
@lombok.Data
public class ReceiptPayDetail implements Serializable {
    /**
     * id
     */
    private Long id;

    /**
     * 支付订单号
     */
    private String payOrderId;

    /**
     * 交易类型
            0：钱包支付
            1：聚合被扫
            2：预付卡刷卡
            3：现金记账
            4：卡券核销
            5：银行卡刷卡
            6：二维码主扫
            7：快捷扫码
            8：小程序支付
     */
    private Integer tradeType;

    /**
     * 实付金额
     */
    private BigDecimal payAmount;

    /**
     * 支付状态 
            0：未支付  100：支付中  200：支付成功 300：支付失败
     */
    private Integer payState;

    /**
     * 支付成功时间（支付成功有值）
     */
    private Date payTime;

    /**
     * 创建者id
     */
    private String creatorId;

    /**
     * 修改者id
     */
    private String updatorId;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 支付方式
            0:其他
            1:微信被扫
            9:微信主扫
            10:微信小程序
            11:微信公众号
            2:支付宝被扫
            12:支付宝主扫
            13:支付宝小程序
            3:云闪付被扫
            14:云闪付主扫
            6:银联借记卡
            8:银联贷记卡
            5:预付卡刷卡
            4:余额（开联通钱包）
            7:现金支付
     */
    private Integer payType;

    /**
     * 已退款金额
     */
    private BigDecimal refundAmount;

    /**
     * 参考号
     */
    private String refNo;

    /**
     * 批次号
     */
    private String batchNo;

    /**
     * 授权码
     */
    private String authCode;

    /**
     * 凭证号
     */
    private String voucherNo;

    /**
     * 支付工具（预付卡卡号/主扫码/银行卡）
            
     */
    private String payTool;

    /**
     * 是否需要对账
            0：否
            1：是
     */
    private Integer needAccount;

    /**
     * 支付用户标识（openId/userId/加密卡号）
     */
    private String payUserId;

    /**
     * 结算日期
     */
    private Date settleDate;

    /**
     * 备注
     */
    private String remark;

    /**
     * 渠道相应码
     */
    private String errCode;

    /**
     * 渠道错误信息
     */
    private String errMsg;

    /**
     * 渠道扩展信息
     */
    private String extJson;

    /**
     * 渠道订单号
     */
    private String channelOrderNo;

    /**
     * 渠道商户号
     */
    private String channelMerchantNo;

    /**
     * 渠道编号
     */
    private String channelCode;

    /**
     * 渠道费率
     */
    private BigDecimal channelFeeRate;

    /**
     * 渠道单笔最小手续费
     */
    private BigDecimal channelMinFeeAmount;

    /**
     * 渠道单笔最大手续费
     */
    private BigDecimal channelMaxFeeAmount;

    /**
     * 代理编号（plutus等）
     */
    private String proxyCode;

    /**
     * 是否使用代理(0:否 1:是)
     */
    private Integer proxyFlag;

    /**
     * 对账流水号
     */
    private String reconSerialNo;

    /**
     * 商场id
     */
    private Long mallId;

    private static final long serialVersionUID = 1L;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getPayOrderId() {
        return payOrderId;
    }

    public void setPayOrderId(String payOrderId) {
        this.payOrderId = payOrderId == null ? null : payOrderId.trim();
    }

    public Integer getTradeType() {
        return tradeType;
    }

    public void setTradeType(Integer tradeType) {
        this.tradeType = tradeType;
    }

    public BigDecimal getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }

    public Integer getPayState() {
        return payState;
    }

    public void setPayState(Integer payState) {
        this.payState = payState;
    }

    public Date getPayTime() {
        return payTime;
    }

    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    public String getCreatorId() {
        return creatorId;
    }

    public void setCreatorId(String creatorId) {
        this.creatorId = creatorId == null ? null : creatorId.trim();
    }

    public String getUpdatorId() {
        return updatorId;
    }

    public void setUpdatorId(String updatorId) {
        this.updatorId = updatorId == null ? null : updatorId.trim();
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }

    public String getRefNo() {
        return refNo;
    }

    public void setRefNo(String refNo) {
        this.refNo = refNo == null ? null : refNo.trim();
    }

    public String getBatchNo() {
        return batchNo;
    }

    public void setBatchNo(String batchNo) {
        this.batchNo = batchNo == null ? null : batchNo.trim();
    }

    public String getAuthCode() {
        return authCode;
    }

    public void setAuthCode(String authCode) {
        this.authCode = authCode == null ? null : authCode.trim();
    }

    public String getVoucherNo() {
        return voucherNo;
    }

    public void setVoucherNo(String voucherNo) {
        this.voucherNo = voucherNo == null ? null : voucherNo.trim();
    }

    public String getPayTool() {
        return payTool;
    }

    public void setPayTool(String payTool) {
        this.payTool = payTool == null ? null : payTool.trim();
    }

    public Integer getNeedAccount() {
        return needAccount;
    }

    public void setNeedAccount(Integer needAccount) {
        this.needAccount = needAccount;
    }

    public String getPayUserId() {
        return payUserId;
    }

    public void setPayUserId(String payUserId) {
        this.payUserId = payUserId == null ? null : payUserId.trim();
    }

    public Date getSettleDate() {
        return settleDate;
    }

    public void setSettleDate(Date settleDate) {
        this.settleDate = settleDate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    public String getErrCode() {
        return errCode;
    }

    public void setErrCode(String errCode) {
        this.errCode = errCode == null ? null : errCode.trim();
    }

    public String getErrMsg() {
        return errMsg;
    }

    public void setErrMsg(String errMsg) {
        this.errMsg = errMsg == null ? null : errMsg.trim();
    }

    public String getExtJson() {
        return extJson;
    }

    public void setExtJson(String extJson) {
        this.extJson = extJson == null ? null : extJson.trim();
    }

    public String getChannelOrderNo() {
        return channelOrderNo;
    }

    public void setChannelOrderNo(String channelOrderNo) {
        this.channelOrderNo = channelOrderNo == null ? null : channelOrderNo.trim();
    }

    public String getChannelMerchantNo() {
        return channelMerchantNo;
    }

    public void setChannelMerchantNo(String channelMerchantNo) {
        this.channelMerchantNo = channelMerchantNo == null ? null : channelMerchantNo.trim();
    }

    public String getChannelCode() {
        return channelCode;
    }

    public void setChannelCode(String channelCode) {
        this.channelCode = channelCode == null ? null : channelCode.trim();
    }

    public BigDecimal getChannelFeeRate() {
        return channelFeeRate;
    }

    public void setChannelFeeRate(BigDecimal channelFeeRate) {
        this.channelFeeRate = channelFeeRate;
    }

    public BigDecimal getChannelMinFeeAmount() {
        return channelMinFeeAmount;
    }

    public void setChannelMinFeeAmount(BigDecimal channelMinFeeAmount) {
        this.channelMinFeeAmount = channelMinFeeAmount;
    }

    public BigDecimal getChannelMaxFeeAmount() {
        return channelMaxFeeAmount;
    }

    public void setChannelMaxFeeAmount(BigDecimal channelMaxFeeAmount) {
        this.channelMaxFeeAmount = channelMaxFeeAmount;
    }

    public String getProxyCode() {
        return proxyCode;
    }

    public void setProxyCode(String proxyCode) {
        this.proxyCode = proxyCode == null ? null : proxyCode.trim();
    }

    public Integer getProxyFlag() {
        return proxyFlag;
    }

    public void setProxyFlag(Integer proxyFlag) {
        this.proxyFlag = proxyFlag;
    }

    public String getReconSerialNo() {
        return reconSerialNo;
    }

    public void setReconSerialNo(String reconSerialNo) {
        this.reconSerialNo = reconSerialNo == null ? null : reconSerialNo.trim();
    }

    public Long getMallId() {
        return mallId;
    }

    public void setMallId(Long mallId) {
        this.mallId = mallId;
    }
}